﻿$(function () {
    $("#searchForm").form("load", {
        startTime: "",
        endTime: "",
    });

    $("#dg").datagrid({
        fit: true,
        fitColumns: true,
        rownumbers: true,
        toolbar: "#d_tb",
        pageSize: 20,
        pagination: true,
        striped: true,
        border: false,
        columns: [[
           { field: "id", title: "ID", hidden: false, checkbox: true },
           { field: "target", title: "收信人", width: 2 },
            { field: "title", title: "标题", width: 2},
            { field: "createTime", title: "发送时间", width: 2,
                formatter: function (val, src) {
                    if (val) {
                        return new Date(val).Format("yyyy-MM-dd HH:mm");
                    } else {
                        return "—";
                    }
                }

            }
        ]]
    });

    $.fn.serializeJson = function () {
        var serializeObj = {};
        $(this.serializeArray()).each(function () {
            serializeObj[this.name] = this.value;
        });
        return serializeObj;
    };

    setTimeout(Query, 0);
    //    Query(); //会执行两次?

});

function Query() {
    var form = $("#searchForm");
    var queryParams = form.serializeJson();
    queryParams.r = Math.random();

    $("#dg").datagrid({
        url: form.attr("action"),
        queryParams: queryParams
    });
}

function ShowAdd() {
    $("#dlg").dialog({
        title:"添加",
        iconCls:"icon-add"
    });
    var form = $("#dlg .mainForm");
    form.form('reset');
    form.form("load", {
        action:"save",
        Id:"0"
    });

}
function ShowModify() {
    var records = $("#dg").datagrid("getSelections");
    if (records.length == 0) {
        $.messager.alert("提示", "请选择需要操作的数据", "info");
        return;
    }
    if (records.length > 1) {
        $.messager.alert("提示", "只能选择一条数据", "info");
        return;
    }
    
    $("#dlg").dialog({
        title:"修改",
        iconCls:"icon-edit"
    });
    var form = $("#dlg .mainForm");
    form.form('reset');
    form.form("load", {
        action:"Modify"
    })
    .form("load",records[0]);

}

function Dlg_submit() {
    var form = $("#dlg .mainForm");
    var queryParams = form.serializeJson();
    queryParams.r = Math.random();

     var isValid =form.form('validate');
     if (!isValid){
        $.messager.alter("提示","请正确填写每一项","info");
        return;
     }

    $.messager.progress();
    $.post(form.attr("action"), queryParams, function (json) {
        $("#dlg").dialog("close");
        $('#dg').datagrid('reload');
    }).error(function () {
        $.messager.alert("错误", "出错了,请刷新页面后重试", "error");
    }).complete(function () {
        $.messager.progress('close');
    });

//    $.messager.progress();	// 显示进度条,能避免重复提交表单
//    $("#dlg .mainForm").form("submit",{
//        onSubmit:function(){
//            var isValid = $(this).form('validate');
//            if (!isValid){
//			    $.messager.progress('close');	// 如果表单是无效的则隐藏进度条
//	       	}
//    		return isValid;	// 返回false终止表单提交
//        },
//        success:function(data){
//            $("#dlg").dialog("close");
//            $('#dg').datagrid('reload');
//            $.messager.progress('close');
//        },
//        onLoadError:function(){
//            $.messager.alert("错误", "出错了,请刷新页面后重试", "error");
//            $.messager.progress('close');
//        }
//    });

}

function Del() {
    var url = $("#dlg .mainForm").attr("action"); //删除提交的地址,默认为对话框表单的地址
    var records = $("#dg").datagrid("getSelections");
    if (records.length == 0) {
        $.messager.alert("提示", "请选择需要操作的数据","info");
        return;
    }
    $.messager.confirm('确认', '您确认要将这<b style=color:red>' + records.length + '</b>条数据删除吗?', function (r) {
        if (r) {
            $.messager.progress();
            function deal() {
                var record = records.pop();
                if (record == null) {
                    $.messager.progress('close');
                    $("#dg").datagrid("reload");
                }

                var data = {
                    Id: record.Id,
                    action: 'DelById'
                };
                $.post(url, data, function (json) {
                    deal();
                }).error(function () {
                    $.messager.progress('close');
                    $.messager.alert("错误", "出错了,请刷新后重试", "error");
                });
            }
            deal();
        }
    });

}

/**
* 日期时间格式化方法，
* 可以格式化年、月、日、时、分、秒、周
**/
Date.prototype.Format = function (formatStr) {
    var week = ['日', '一', '二', '三', '四', '五', '六'];
    return formatStr.replace(/yyyy|YYYY/, this.getFullYear())
 	             .replace(/yy|YY/, (this.getYear() % 100) > 9 ? (this.getYear() % 100).toString() : '0' + (this.getYear() % 100))
 	             .replace(/MM/, (this.getMonth() + 1) > 9 ? (this.getMonth() + 1).toString() : '0' + (this.getMonth() + 1)).replace(/M/g, (this.getMonth() + 1))
 	             .replace(/w|W/g, week[this.getDay()])
 	             .replace(/dd|DD/, this.getDate() > 9 ? this.getDate().toString() : '0' + this.getDate()).replace(/d|D/g, this.getDate())
 	             .replace(/HH|hh/g, this.getHours() > 9 ? this.getHours().toString() : '0' + this.getHours()).replace(/H|h/g, this.getHours())
 	             .replace(/mm/g, this.getMinutes() > 9 ? this.getMinutes().toString() : '0' + this.getMinutes()).replace(/m/g, this.getMinutes())
 	             .replace(/ss/g, this.getSeconds() > 9 ? this.getSeconds().toString() : '0' + this.getSeconds()).replace(/S|s/g, this.getSeconds());
};